<template lang="html">
 
    <div class="editor">
 
        <div ref="editor" class="textNeirong">
 
        </div>
 
    </div>
 
</template>
 
<script>
import E from "wangeditor";

import store from "@/store/";

export default {
  name: "editoritem",

  data() {
    return {
      // uploadPath,components

      editor: null,

      info_: null,
    };
  },

  model: {
    prop: "value",

    event: "change",
  },

  props: {
    value: {
      type: String,

      default: "",
    },

    isClear: {
      type: Boolean,

      default: false,
    },
  },

  watch: {
    isClear(val) {
      // 触发清除文本域内容

      if (val) {
        this.editor.txt.clear();

        this.info_ = null;
      }
    },

    value: function (value) {
      if (value !== this.editor.txt.html()) {
        this.editor.txt.html(this.value);
      }
    },

    //value为编辑框输入的内容，这里我监听了一下值，当父组件调用得时候，如果给value赋值了，子组件将会显示父组件赋给的值
  },

  created() {},

  mounted() {
    this.seteditor();

    this.editor.txt.html(this.value);
  },

  methods: {
    seteditor() {
      this.editor = new E(this.$refs.editor);

      this.editor.config.uploadImgServer = "http://127.0.0.1:2024/upload"; // 填写配置服务器端地址

      this.editor.config.onchange = (html) => {
        this.info_ = html; // 绑定当前逐渐地值

        this.$emit("change", this.info_); // 将内容同步到父组件中
      };

      // 创建富文本编辑器

      this.editor.create();

      this.editor.config.uploadImgHooks = {
        fail: (xhr, editor, result) => {
          // 插入图片失败回调
        },

        success: (xhr, editor, result) => {
          // 图片上传成功回调
          editorConfig.customInsert && editorConfig.customInsert(res);
        },

        timeout: (xhr, editor) => {
          // 网络超时的回调
        },

        error: (xhr, editor) => {
          // 图片上传错误的回调
        },

        customInsert: (insertImg, result, editor) => {
          //循环插入图片

          let url = result.data.imagePath;

          insertImg(url);
        },
      };
    },
  },
};
</script>
 
<style lang="scss">
.editor {
  width: 100%;

  margin: auto;

  position: relative;
}
</style>